'use strict'

define(['jquery', 'datetimepicker','bootstrap', 'select2', 'shiftform', 'validate', 'validate.en', 'uploader', 'plupload', 'qiniu'], function ($) {
    return {
        init: function (data) {
            this.initSearch();
            this.initPay(data.apiHost, data.cloudDomain);
            this.initConsumed();
            this.initCancel();
            this.initRefunded();
           /* this.cancelOrder();*/
        },

	    initSearch: function () {
	        $(document).on("shown.bs.modal", "#search", function (e) {
	        	$(e.currentTarget).find('form[data-validate="true"]').bt_validate()  //bind validate
	        });
	    },
        initPay: function (apiHost, cloudDomain) {

            $(document).on("shown.bs.modal", "#pay", function (e) {

                $(e.currentTarget).find('form[data-validate="true"]').bt_validate()  //bind validate

                var $form = $(e.currentTarget).find("form")                          //bind shiftform
                $form.shiftform({
                    beforeSubmit: function (el) {
                        $form.trigger("validate.ajax.submit");
                        return $.bt_validate.result[$.bt_validate.form_id]
                    }
                })

                $.ajax({
                    url: apiHost + "/api/qiniu/token",
                    jsonp: "callback",
                    dataType: "jsonp",
                    success: function( response ) {
                        var uploaderCover = Qiniu.uploader({
                            runtimes: 'html5,flash,html4',
                            browse_button: 'pickCover',
                            uptoken: response.uptoken,
                            domain: cloudDomain,
                            max_file_size: '4mb',
                            max_retries: 3,
                            chunk_size: '2mb',
                            save_key: true,
                            auto_start: true,
                            init: {
                                'UploadProgress': function(up, file) {
                                    $('#messageCover').removeClass("hide");
                                    $(".edit-btn").addClass("hide").prop("disabled", true);
                                    $('#messageCover').html("正在上传图片，请稍后");
                                    $('#submitBtn').attr("disabled", "disabled");
                                },
                                'FileUploaded': function(up, file, info) {
                                    var res = $.parseJSON(info);
                                    var cover_box = '';
                                    $('#coverPreview').attr("src", window.__CTX__.cloudDomain + "/" + res.key);
                                    $('#coverPreviewList').css("display", "block");
                                    $('#cover').val(res.key);
                                    $('#messageCover').html("加载图片完成");
                                    setTimeout(function() {
                                        $('#messageCover').addClass("hide");
                                        $(".edit-btn").addClass("fade").removeClass("hide").prop("disabled", false).html("<span class='glyphicon glyphicon-repeat' aria-hidden='true'></span>&nbsp;&nbsp;重新上传");
                                    }, 2000);
                                    $('#submitBtn').removeAttr('disabled');
                                },
                                'Error': function(up, err, errTip) {
                                    $('#messageCover').html("图片上传异常，请稍后重试");
                                }
                            }
                        });
                    }
                });

            });
        },
        initRefunded: function () {

            $(document).on("shown.bs.modal", "#refunded", function (e) {

                $(e.currentTarget).find('form[data-validate="true"]').bt_validate()  //bind validate

                var $form = $(e.currentTarget).find("form")                          //bind shiftform
                $form.shiftform({
                    beforeSubmit: function (el) {
                        $form.trigger("validate.ajax.submit");
                        return $.bt_validate.result[$.bt_validate.form_id]
                    }
                })
            });
        },
        initConsumed: function () {

            $(document).on("shown.bs.modal", "#consumed", function (e) {

                $(e.currentTarget).find('form[data-validate="true"]').bt_validate()  //bind validate

                var $form = $(e.currentTarget).find("form")                          //bind shiftform
                $form.shiftform({
                    beforeSubmit: function (el) {
                        $form.trigger("validate.ajax.submit");
                        return $.bt_validate.result[$.bt_validate.form_id]
                    }
                })
            });
        },
       initCancel: function () {

            $(document).on("shown.bs.modal", "#cancel", function (e) {

                $(e.currentTarget).find('form[data-validate="true"]').bt_validate()  //bind validate

                var $form = $(e.currentTarget).find("form")                          //bind shiftform
                $form.shiftform({
                    beforeSubmit: function (el) {
                        $form.trigger("validate.ajax.submit");
                        return $.bt_validate.result[$.bt_validate.form_id]
                    }
                })
            });
        }
       /*cancelOrder: function(orderId, agentMobile) {
       	var currentThat = this;
       	$(".cancelOrder").on('click', function(e) {
       		var that = this
       		$.confirm('确认取消订单？', function() {
       			var defer = $.Deferred()
       			$.showIndicator()
       			$.post($(that).data('href'), {"_method" : "PATCH"})
       			.done(function(response) {
       				$.hideIndicator()
       				utils.processResult(response, function(result) {
       					$.toast(result.message || '取消订单成功')
       					currentThat.requestCancelOrderMessage($(that).data("agent"), $(that).data("order"), function(data) {},function(){});
       				setTimeout(function() {
       					window.location.href = window.__CTX__.root + "/orders";
       				}, 2000)
       				}, function(result) {
       					$.toast(result.message || '取消订单')
       				})
       			})
       			return defer.promise();
       		});
       	})
       	
       },*/
        
    /**
     * Request server to send order cancel message to mobile
     */
       /* requestCancelOrderMessage: function(mobile, orderId, success, failure) {
        	$.showIndicator()
        	utils.requestCancelOrderMessage(mobile, orderId, function(result) {
        		$.hideIndicator()
        		success && success(result,data)
        	}, failure)
        }*/
       
    }
})

